package com.design.cjm.behavioral.templatemethod.example;

/**
 * @Author: Jie Ming Chen
 * @Date: 2018/9/20
 * @Version 1.0
 */
public abstract class AbstractClass {

    /**
     * 一些抽象行为，放到子类去实现
     */
    public abstract void primitiveOperation1();

    public abstract void primitiveOperation2();

    /**
     * 模板方法，给出了逻辑的骨架，而逻辑的组成
     * 是一些相应的抽象操作，它们都推迟到子类实现
     */
    public void templateMethod() {

        primitiveOperation1();
        primitiveOperation2();
    }

}
